package com.zmn.oms.model.dto.order.zmn;

import com.zmn.common.constant.GlobalConsts;
import com.zmn.consts.GateTypeConsts;
import com.zmn.oms.common.dto.OmsBaseOperator;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;

/**
 * @author sunlife
 * @date:2020/6/26 4:29 下午
 * description:
 */
@Data
public class FactoryBatchNewOrderDIO extends OmsBaseOperator {
    /**
     * 渠道ID
     */
    private Integer channelId;

    /**
     * 厂商ID
     */
    private Integer factoryId;


    /**
     * 厂商用户ID
     */
    private Long factoryUserId;

    /**
     * 用户名
     */
    private String userName;

    /**
     * 手机号
     */
    @NotEmpty(message = "用户电话不能为空")
    private String telephone;


    /**
     * 手机号
     */
    private String telephone2;

    /**
     * 手机号
     */
    private Boolean telephoneFlag;

    /**
     * 订单业务类型：1保外业务（C），2保内业务（F），3工程业务（B）
     */
    @NotNull(message = "保内保外不能为空")
    private Integer bizType;

    /**
     * 产品ID
     */
    private Integer productId;
    /**
     * 产品ID
     */
    private String productName;

    /**
     * 产品数量
     */
    private Integer count;

    /**
     * 产品数量
     */
    private Boolean countFlag;

    /**
     * 城市名称
     */
    @NotNull(message = "城市不能为空")
    private Integer cityId;

    /**
     * 城市名称
     */
    private String cityName;

    /**
     * 城市信息 用来匹配表格中的城市信息
     */
    private String cityInfo;

    /**
     * 省份名称
     */
    private String provinceName;

    /**
     * 省份id
     */
    private Integer provinceId;

    /**
     * 地址
     */
    private String address;

    /**
     * 地址
     */
    private Boolean addressFlag;

    /**
     * 预约时间
     */
    private Date dutyTime;

    /**
     * 备注
     */
    @Size(max = 5000, message = "备注最多5000个字符")
    private String remark;

    /**
     * 订单类型：1 新单、2 返修单
     */
    @NotNull(message = "订单类型不能为空")
    private Integer type;

    /**
     * 预约状态(1 预约失败 2 预约成功)
     */
    private Integer dutyStatus;

    /**
     * 预约失败code
     */
    private Integer dutyFailCode;

    /**
     * 下次联系时间
     */
    private Date nextContactTime;

    /**
     * 性别：1 男; 2 女; 3 保密
     */
    private Integer gender = 3;

    /**
     * 区县ID
     */
    @NotEmpty(message = "区县不能为空")
    private Integer countyId;


    /**
     * 区县名称
     */
    private String countyName;

    /**
     * 街道
     */
    @NotEmpty(message = "用户地址不能为空")
    private String street;

    /**
     * 服务分类id
     */
    private Integer servCategId;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 经度
     */
    private Double longitude;

    /**
     * 纬度
     */
    private Double latitude;

    /**
     * 工单录入方式：1后台人工录入、2微信/H5、 3接口(114,号百,360等)
     */
    private Integer inputType = 1;

    /**
     * 平台
     */
    private Integer plat = GlobalConsts.PLAT_MARK_YEYX;

    /**
     * 服务平台
     */
    private Integer platWork = GlobalConsts.PLAT_MARK_YEYX;

    /**
     * 下单入口
     * @see GateTypeConsts
     */
    private Integer receiveEntranceId = GateTypeConsts.GATE_PLAT_BACKSTAGE;

    /**
     * 下单方式 1:人工录入 2：接口录入
     */
    private Integer receiverManner = 1;

    /**
     * 其他故障
     */
    private String fault;
}
